package com.restaurant.application.coupon;

import com.nebutown.base.Unit;
import com.restaurant.application.coupon.support.CouponData;
import com.restaurant.application.indexes.couponlist.mysql.CouponListFromcouponUidIF;
import com.restaurant.application.minifacade.data.CardBO;

/**
 * 优惠卷基元
 *
 * @author Administrator
 */
public interface Coupon extends Unit, CouponListFromcouponUidIF {

    String COUPON_NUMBER = "couponNumber=";

    String STATE_USED = "已使用";
    String STATE_NOT_USED = "未使用";
    String STATE_OVERTIME = "有效";
    String STATE_NOT_OVERTIME = "已过期";

    /**
     * 初始化
     *
     * @param data            CouponData
     * @return success 成功， other 失败
     */
    String init(CouponData data);

    /**
     * 修改
     *
     * @param data CouponData
     * @return success 成功， other 失败
     */
    String update(CouponData data);

    /**
     * 确认使用
     *
     * @param id 后台用户 id
     * @return success 成功， other 失败
     */
    String confirmUse(String id);

    /**
     * 确认领用 (用于客户将自己的优惠券赠送好友， 好友领用)
     *
     * @param version 领取版本
     * @return success 成功， other 失败
     */
    String confirmReceive(int version);

    /**
     * 小程序获取优惠券的详情
     *
     * @return CardBean
     */
    CardBO getCardBean();

    /**
     * 获取基元信息
     *
     * @return CouponData
     */
    CouponData findData();
}
